package com.project.mapper;

import com.project.bean.EmployeeBean;
import com.project.mapper.Provider.EmProvider;
import org.apache.ibatis.annotations.*;

import java.lang.annotation.Target;
import java.time.LocalDate;
import java.util.List;
import java.util.Map;

public interface IEmployeeMapper {
    @Insert("insert into t_employee(e_name,e_birthday)values(#{name},#{birthday})")
    void add(EmployeeBean emBean);
    @Delete("delete from t_employee where pk_emId=#{id}")
    void del(int id);

    /**
     * 修改员工生日
     * @param id 员工id
     * @param birthday 新生日
     */
    @Update("update t_employee set e_birthday=#{birthday} where pk_emId=#{id}")
    void update(@Param("id") int id, @Param("birthday") LocalDate birthday);

    /**
     * 查询所有员工
     * @return 员工集合
     */
    @Select("select * from t_employee")
    @ResultMap("emMap")
    List<EmployeeBean> findAll();

    /**
     * 动态条件查询
     * @param map 条件map集合
     * @return 员工集合
     */
    //使用EmProvider类中findByItem
    @ResultMap("emMap")
    @SelectProvider(type= EmProvider.class,method = "findByItem")
    List<EmployeeBean> findByItem(Map map);


    EmployeeBean findById(int id);
}
